package com.liming.auth.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.liming.common.pojo.dto.authinfo.UserActivityAddDTO;
import com.liming.common.pojo.entity.authinfo.UserActivity;

import java.util.List;
import java.util.Map;

/**
 * @author liming
 * @date 2025/3/11
 */
public interface UserActivityService extends IService<UserActivity> {

    /**
     * 保存用户操作日志
     *
     * @param dto 操作数据
     * @return 是否保存成功
     */
    Boolean saveActivityLog(UserActivityAddDTO dto);

    /**
     * Map - 用户id - 用户操作分数
     *
     * @param userIds 用户IDS
     * @return 用户操作分数
     */
    Map<Long, Double> userActivityScoreMap(List<Long> userIds);

    /**
     * 用户活跃数量 - 时间范围
     *
     * @param scope 时间范围
     * @return 用户活跃数量
     */
    Integer activityUserCount(String scope);

    /**
     * 商品ID - 活动类型列表 Map
     *
     * @return Map
     */
    Map<Long, List<Integer>> productIdActivityTypeListMap();

    /**
     * 获取用户行为的品牌和分类 Map
     *
     * @param userId 用户ID
     * @param code   行为Code
     * @return Map
     */
    Map<Integer, List<Long>> activityBrandAndCategoryListMap(Long userId, Integer code);
}
